home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / commodore-users-of-norman / CUON_25_(10-1984).d64 / bonk barrels_64 (.txt) < prev    next >
Commodore BASIC  |  2019-04-13  |  4KB  |  121 lines

  1. 100 PRINT"[147][159]       REDEFINING CHARACTER SET"
  2. 110 GOTO390
  3. 120 REM MAN JUMPS
  4. 130 POKEE%,39
  5. 140 FOR X=1TOZ%:GOSUB250:IF PEEK(B%(X))>36ANDPEEK(B%(X))<40 THEN910
  6. 145 IF PEEK(B%(X)+D(X))>36ANDPEEK(B%(X)+D(X))<40THEN910
  7. 147 IF PEEK(B%(X)-1)>36ANDPEEK(B%(X)-1)<40THEN910
  8. 150 GOSUB 310:NEXTX
  9. 160 POKEE%,37
  10. 170 POKES,P
  11. 180 P=P+3
  12. 190 POKEE%,38
  13. 200 FORX=1TOZ%:GOSUB250:IF PEEK(B%(X))>36ANDPEEK(B%(X))<40 THEN910
  14. 203 IF PEEK(B%(X)+D(X))>36ANDPEEK(B%(X)+D(X))<40THEN910
  15. 205 IF PEEK(B%(X)-1)>36ANDPEEK(B%(X)-1)<40THEN910
  16. 210 GOSUB 310:NEXTX
  17. 220 IFPEEK(E%-40)=LLTHEN 910
  18. 230 POKEE%,32:E%=E%-40:POKEE%,38:POKES,0:POKEE%,32:E%=E%-40:POKEE%,38:RETURN
  19. 240 REM MOVE BARRELS
  20. 250 POKES+1,O
  21. 260 POKEB%(X),C
  22. 270 IFPEEK(B%(X)+I%)=WTHENB%(X)=B%(X)+D(X)
  23. 280 IFPEEK(B%(X))=WTHENB%(X)=B%(X)-T%*D(X)
  24. 290 IFPEEK(B%(X)+I%)<>WTHENB%(X)=B%(X)+I%
  25. 300 RETURN
  26. 310 POKEB%(X),LL
  27. 320 IFB%(X)>JTHENGOSUB350
  28. 330 RETURN
  29. 340 REM RESET BARRELS
  30. 350 FORX=1TOZ%:POKEB%(X),C:B%(X)=SR+INT(RND(X)*T%):NEXTX
  31. 360 REM SCORE
  32. 370 PRINT"SCORE    [157][157][157][157]"SC;"         [157][157][157][157][157][157]";
  33. 380 FORQ=3TOA+1STEP-1:PRINT"[146]%";:NEXT:PRINT"":RETURN
  34. 390 POKE53281,0:POKE53280,6
  35. 400 POKE56,48:CLR
  36. 410 POKE56334,PEEK(56334)AND254:POKE1,PEEK(1)AND251
  37. 420 BL$="[158]                                        "
  38. 430 AL$="[146][156]$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$"
  39. 440 FORI=0TO1023:POKEI+12288,PEEK(I+53248):POKEI+13312,PEEK(I+53248):NEXT
  40. 450 POKE1,PEEK(1)OR4
  41. 460 POKE56334,PEEK(56334)OR1
  42. 470 POKE53272,(PEEK(53272)AND240)+12
  43. 480 FORI=12544TO12544+8*8-1:READA:POKEI,A:NEXT:GOSUB1080
  44. 490 DATA0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,56,108,206,174,234,230,108,56:REM BARREL
  45. 500 DATA56,108,246,250,134,222,108,56:REM BARREL
  46. 510 DATA255,153,189,153,255,0,0,0:REM BEAM
  47. 520 DATA56,56,16,56,84,16,56,40:REM MAN NORMAL
  48. 530 DATA186,186,84,56,16,16,56,40,0,0,0,56,56,16,124,170
  49. 540 SR=1025:K=55296-SR+1
  50. 550 J=SR+820:V=54296:S=54272:FORI=STOV:POKEI,0:NEXTI
  51. 560 POKEV,15:POKES+5,130:POKES+6,72
  52. 570 SR=1025:K=55296-SR+1
  53. 580 PRINT"[147]":A=0:SC=0:Z%=4
  54. 590 REM SET UP SCREEN
  55. 600 PRINT"[147]";:BL=80
  56. 610 FORI=1TO10:PRINTBL$;AL$;:NEXT:PRINTBL$;BL$;""
  57. 620 X=SR+39:POKES+4,33:POKES+24,15
  58. 630 FORB=1TOBL
  59. 640 R=INT(RND(X)*908)
  60. 650 POKEX+R,32:POKEX+R+K,7:POKES+1,B+10:NEXT:POKES+4,0
  61. 660 POKES+4,17:FORG=-1TO20
  62. 670 POKEX+G*40,36:POKES+1,50+(G*2):POKEX+G*40+K,5
  63. 680 POKEX+39+(G*40),36:POKES+1,0:POKEX+39+(G*40)+K,5:NEXTG:POKES+4,0
  64. 690 REM PREP FOR LOOP
  65. 700 E%=J:D(1)=1:D(2)=-1:D(3)=1:D(4)=-1:L=1:LM=10:RM=18:UP=5:BM=4:O=0
  66. 710 W=36:C=32:KB=197:T%=38:I%=40:LL=34:D=37:Z=245:P=128:TT%=1:TH%=3:GOSUB350
  67. 720 REM MAIN GAME LOOP
  68. 730 FOR X=1TOZ%:GOSUB250:IFPEEK(B%(X))>36ANDPEEK(B%(X))<40 THEN910
  69. 735 IF PEEK(B%(X)+D(X))>36ANDPEEK(B%(X)+D(X))<40THEN910
  70. 737 REM   IF PEEK(B%(X)-1)>36ANDPEEK(B%(X)-1)<40THEN910
  71. 740 GOSUB 310:NEXTX
  72. 750 IFPEEK(E%)=LLTHENE%=E%+40:POKEE%+K,7:POKEE%+I%,36:POKEE%+I%+K,4:GOTO910
  73. 760 IFPEEK(E%-I%)=LLTHEN910
  74. 770 IFPEEK(E%+I%)=LLTHENPOKEE%,C:E%=E%+80:GOTO910
  75. 780 IFLL=34THENLL=35:GOTO800
  76. 790 LL=34
  77. 800 POKEE%,C
  78. 810 IFPEEK(KB)=LMTHENIFPEEK(E%-L)<>WTHENE%=E%-L:POKEE%,D:YG=-2:GOTO850
  79. 820 IFPEEK(KB)=RMTHENIFPEEK(E%+L)<>WTHENE%=E%+L:POKEE%,D:YG=2:GOTO850
  80. 830 IFPEEK(KB)=BMTHENIFPEEK(E%-I%)=WTHENPOKEE%-I%,C:SC=SC-5:P=P-10
  81. 840 IFPEEK(KB)=UPTHENIFPEEK(E%-I%)<>WTHENGOSUB130:SC=SC+L+L:P=P+3:POKEE%,D
  82. 850 IFP>ZTHENP=128
  83. 860 POKEE%,D:POKES+4,17:POKES+1,40
  84. 870 IF E%<SRTHENE%=J:TT%=TT%+L:GOSUB370:IFSC>35THENZ%=RND(X)*4+1
  85. 880 IFTT%>TH%THENGOTO600
  86. 890 GOTO730
  87. 900 REM LOSE MAN
  88. 910 POKES+4,129:N=15:POKES,39:POKES+1,09:FORQ=1TO4:POKEB%(Q),32:NEXT
  89. 920 POKEE%,38:POKEE%-40,34:GOSUB1190:POKEE%,37:GOSUB1190:POKEE%,39:GOSUB1190
  90. 930 POKEE%-40,194:POKEE%,35:GOSUB1190:POKEE%+1,173:POKEE%-1,173:POKEE%+40,194
  91. 940 POKEE%-39,206:POKEE%-41,205
  92. 950 POKEE%+41,205:POKEE%+39,206:GOSUB1190
  93. 960 POKEE%-120,174:POKEE%-2,174:POKEE%+2,174:POKEE%+120,174:GOSUB1190
  94. 970 POKEE%-78,174
  95. 980 POKEE%-82,174:POKEE%+78,174:POKEE%+82,174:GOSUB1190
  96. 990 SC=SC-8:POKES+4,128:A=A+1:GOSUB370
  97. 1000 TT%=1:IFA<3GOTO600
  98. 1010 PRINT"[147]";
  99. 1015 POKE198,0:PRINT"      GAME OVER"
  100. 1018 PRINT"              SCORE= ";SC
  101. 1020 PRINT"      HIT SPACE BAR TO PLAY AGAIN"
  102. 1030 PRINT"          ANY OTHER KEY TO END"
  103. 1040 GETYY$:IFYY$=""THEN1040
  104. 1050 IF YY$<>" "THEN PRINT"[147]":END
  105. 1060 GOTO580
  106. 1070 REM
  107. 1080 PRINT"[147]":PRINTTAB(11)"*INSTRUCTIONS*":PRINT
  108. 1090 PRINTTAB(9)"A[146] MOVES MAN LEFT":PRINTTAB(9)"D[146] MOVES MAN RIGHT"
  109. 1100 PRINT:PRINTTAB(9)"F3[146] MOVES MAN UP 1 LEVEL"
  110. 1110 PRINTTAB(9)"F1[146] WILL BLAST SPACE ABOVE"
  111. 1120 PRINT:PRINTTAB(9)"   **POINTS**"
  112. 1130 PRINT:PRINTTAB(9)"2 FOR EACH UP":PRINTTAB(8)"-5 FOR USING BLAST"
  113. 1140 PRINTTAB(8)"-8 FOR GETTING HIT"
  114. 1150 PRINT"":PRINTTAB(8)"   PRESS SPACE BAR[159]"
  115. 1160 GETXX$:IFXX$=""THEN1160
  116. 1170 RETURN
  117. 1180 REM TIME AND SOUND FOR LOSE MAN ROUNTINE
  118. 1190 N=N-2:IFN<0THENN=0
  119. 1200 IFPEEK(E%)=38ORPEEK(E%)=39THENFORQ=1TO50:NEXT
  120. 1210 FORQ=1TO25:NEXT:RETURN
  121.